package com.ruoyi.algorithm.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @TableName operator_version
 */
@TableName(value = "operator_version")
@Setter
@Getter
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
public class OperatorVersion implements Serializable {

    public OperatorVersion(Long id, Boolean b) {
        this.id = id;
        this.delFlag = b;
    }

    /**
     * 主键ID
     */
    @TableId(value = "id")
    @ApiModelProperty(value = "主键ID（新增不需要传值）")
    private Long id;

    /**
     * 算子表ID
     */
    @TableField(value = "operator_id")
    @ApiModelProperty("算子表ID")
    private Long operatorId;

    /**
     * 版本号
     */
    @TableField(value = "version")
    @ApiModelProperty("版本号")
    private String version;

    /**
     * 接口类型
     */
    @TableField(value = "interface_type")
    @ApiModelProperty("接口类型")
    private String interfaceType;

    /**
     * 在线标志（true在线；false下线）
     */
    @TableField(value = "is_online")
    @ApiModelProperty("在线标志（true在线；false下线）")
    private Boolean isOnline;

    /**
     * 镜像名称(sdk)
     */
    @TableField(value = "image_name")
    @ApiModelProperty("镜像名称(sdk)")
    private String imageName;

    /**
     * 镜像版本ID(sdk)
     */
    @TableField(value = "image_version_id")
    @ApiModelProperty("镜像版本ID(sdk)")
    private Long imageVersionId;

    /**
     * 镜像启动模板
     */
    @TableField(value = "image_start_template")
    @ApiModelProperty("镜像启动模板")
    private String imageStartTemplate;

    /**
     * 镜像启动参数KV
     */
    @TableField(value = "image_start_param")
    @ApiModelProperty("镜像启动参数KV")
    private String imageStartParam;

    /**
     * 算子初始化地址模板
     */
    @TableField(value = "operator_init_addr_temp")
    @ApiModelProperty("算子初始化地址模板")
    private String operatorInitAddrTemp;

    /**
     * 算子初始化参数KV
     */
    @TableField(value = "operator_init_param")
    @ApiModelProperty("算子初始化参数KV")
    private String operatorInitParam;

    /**
     * 算子状态查询地址模板
     */
    @TableField(value = "operator_status_addr_temp")
    @ApiModelProperty("算子状态查询地址模板")
    private String operatorStatusAddrTemp;

    /**
     * 算子状态查询参数KV
     */
    @TableField(value = "operator_status_param")
    @ApiModelProperty("算子状态查询参数KV")
    private String operatorStatusParam;

    /**
     * 算子停止地址模板
     */
    @TableField(value = "operator_stop_addr_temp")
    @ApiModelProperty("算子停止地址模板")
    private String operatorStopAddrTemp;

    /**
     * 算子停止参数KV
     */
    @TableField(value = "operator_stop_param")
    @ApiModelProperty("算子停止参数KV")
    private String operatorStopParam;

    /**
     * 算子传参方式
     */
    @TableField(value = "operator_param_transmission_mode")
    @ApiModelProperty("算子传参方式")
    private String operatorParamTransmissionMode;

    /**
     * 输出数据格式
     */
    @TableField(value = "output_data_format")
    @ApiModelProperty("输出数据格式")
    private String outputDataFormat;

    /**
     * 镜像启动地址
     */
    @TableField(value = "image_start_address")
    @ApiModelProperty("镜像启动地址")
    private String imageStartAddress;

    /**
     * 算子初始化地址
     */
    @TableField(value = "operator_init_address")
    @ApiModelProperty("算子初始化地址")
    private String operatorInitAddress;

    /**
     * 算子状态查询地址
     */
    @TableField(value = "operator_status_address")
    @ApiModelProperty("算子状态查询地址")
    private String operatorStatusAddress;

    /**
     * 算子停止接口地址
     */
    @TableField(value = "operator_stop_address")
    @ApiModelProperty("算子停止接口地址")
    private String operatorStopAddress;

    /**
     * 镜像停止地址
     */
    @TableField(value = "image_stop_address")
    @ApiModelProperty("镜像停止地址")
    private String imageStopAddress;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:dd:ss") //前台传数据到后台
    @JsonFormat(pattern = "yyyy-MM-dd HH:dd:ss", timezone = "GMT+8")// 后台传数据到前台
    @TableField(value = "create_time")
    @ApiModelProperty(value = "创建时间", hidden = true)
    private Date createTime;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:dd:ss") //前台传数据到后台
    @JsonFormat(pattern = "yyyy-MM-dd HH:dd:ss", timezone = "GMT+8")// 后台传数据到前台
    @TableField(value = "update_time")
    @ApiModelProperty(value = "更新时间", hidden = true)
    private Date updateTime;

    /**
     * 创建人
     */
    @TableField(value = "create_user")
    @ApiModelProperty(value = "创建人", hidden = true)
    private String createUser;

    /**
     * 更新人
     */
    @TableField(value = "update_user")
    @ApiModelProperty(value = "更新人", hidden = true)
    private String updateUser;

    /**
     * 删除标志（true删除；false未删除）
     */
    @TableField(value = "del_flag")
    @ApiModelProperty(hidden = true)
    private Boolean delFlag;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

}
